﻿// ***********************************************************************
// Assembly         : Logica
// Author           : Diego
// Created          : 03-02-2014
//
// Last Modified By : Diego
// Last Modified On : 03-02-2014
// ***********************************************************************
// <copyright file="Log_OrdenamientoEstructural.cs" company="">
//     Copyright (c) . All rights reserved.
// </copyright>
// <summary></summary>
// ***********************************************************************
using AccesoDatos.Modulos.ClasesAccesoDatos;
using Modelado.Modulos.ClasesModelado;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/// <summary>
/// The ClasesLogica namespace.
/// </summary>
namespace Logica.Modulos.ClasesLogica
{
    /// <summary>
    /// Class Log_OrdenamientoEstructural.
    /// </summary>
    public class Log_OrdenamientoEstructural:Negocio
    {
        /// <summary>
        /// Crs the e_ ordenamiento estructural.
        /// </summary>
        /// <param name="codEstructura">The cod estructura.</param>
        /// <param name="codSubEstructura">The cod sub estructura.</param>
        /// <param name="codSubTipoEstructura">The cod sub tipo estructura.</param>
        public void CRE_OrdenamientoEstructural(int codEstructura, int codSubEstructura, int codSubTipoEstructura)
        {
            try
            {   this.IniciarTransaccion();

                AD_OrdenamientoEstructura objBD = new AD_OrdenamientoEstructura();

                objBD.CRE_OrdenamientoEstructural(this.comando, codEstructura, codSubEstructura, codSubTipoEstructura);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }

        /// <summary>
        /// Ses the l_ ordenamiento estructural by i ds.
        /// </summary>
        /// <param name="codEstructura">The cod estructura.</param>
        /// <param name="codSubEstructura">The cod sub estructura.</param>
        /// <param name="codSubTipoEstructura">The cod sub tipo estructura.</param>
        /// <returns>System.Int32.</returns>
        public int SEL_OrdenamientoEstructuralByIDs(int codEstructura, int codSubEstructura, int codSubTipoEstructura)
        {
            try
            {
                this.AbrirConexion();

                AD_OrdenamientoEstructura objBD = new AD_OrdenamientoEstructura();

                int cant_ord = objBD.SEL_OrdenamientoEstructuralByIDs(this.comando, codEstructura, codSubEstructura, codSubTipoEstructura);

                this.CerrarConexion();

                return cant_ord;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }

        }

        /// <summary>
        /// Ses the l_ grid_ ordenamiento estructural.
        /// </summary>
        /// <returns>List{MOD_OrdenamientoEstructural}.</returns>
        public List<MOD_OrdenamientoEstructural> SEL_Grid_OrdenamientoEstructural()
        {
            try
            {
                this.AbrirConexion();

                AD_OrdenamientoEstructura objBD = new AD_OrdenamientoEstructura();

                List<MOD_OrdenamientoEstructural> lista = objBD.SEL_Grid_OrdenamientoEstructural(this.comando);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        /// <summary>
        /// Ses the l_ cascada_ sub estructuras.
        /// </summary>
        /// <param name="codEstructura">The cod estructura.</param>
        /// <returns>List{MOD_OrdenamientoEstructural}.</returns>
        public List<MOD_OrdenamientoEstructural> SEL_Cascada_SubEstructuras(int codEstructura)
        {
            try
            {
                this.AbrirConexion();

                AD_OrdenamientoEstructura objBD = new AD_OrdenamientoEstructura();

                List<MOD_OrdenamientoEstructural> lista = objBD.SEL_Cascada_SubEstructuras(this.comando, codEstructura);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        /// <summary>
        /// Ses the l_ cascada_ sub tipo estructuras.
        /// </summary>
        /// <param name="codEstructura">The cod estructura.</param>
        /// <param name="codSubEstructura">The cod sub estructura.</param>
        /// <returns>List{MOD_OrdenamientoEstructural}.</returns>
        public List<MOD_OrdenamientoEstructural> SEL_Cascada_SubTipoEstructuras(int codEstructura, int codSubEstructura)
        {
            try
            {
                this.AbrirConexion();

                AD_OrdenamientoEstructura objBD = new AD_OrdenamientoEstructura();

                List<MOD_OrdenamientoEstructural> lista = objBD.SEL_Cascada_SubTipoEstructuras(this.comando, codEstructura, codSubEstructura);

                this.CerrarConexion();

                return lista;
            }
            catch (Exception exc)
            {
                this.CerrarConexion();
                throw exc;
            }
        }

        /// <summary>
        /// Des the l_ ordenamiento estructural.
        /// </summary>
        /// <param name="codigo">The codigo.</param>
        public void DEL_OrdenamientoEstructural(int codigo)
        {
            try
            {
                this.IniciarTransaccion();

                AD_OrdenamientoEstructura objBD = new AD_OrdenamientoEstructura();

                objBD.DEL_OrdenamientoEstructural(this.comando, codigo);

                this.ConfirmarTransaccion();
            }
            catch (Exception exc)
            {
                this.DeshacerTransaccion();
                throw exc;
            }
        }
    }
}
